package com.yf.dxapp.module.app.dal.mysql.courseitem;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yf.dxapp.module.app.controller.admin.courseitem.vo.CourseItemPageReqVO;
import com.yf.dxapp.module.app.dal.dataobject.courseitem.CourseItemDO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 课程明细 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface CourseItemMapper extends BaseMapperX<CourseItemDO> {

    default PageResult<CourseItemDO> selectPage(CourseItemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<CourseItemDO>()
                .eqIfPresent(CourseItemDO::getMainCourseId, reqVO.getMainCourseId())
                .eqIfPresent(CourseItemDO::getTitle, reqVO.getTitle())
                .eqIfPresent(CourseItemDO::getDisable, reqVO.getDisable())
                .eqIfPresent(CourseItemDO::getCourseNo, reqVO.getCourseNo())
                .eqIfPresent(CourseItemDO::getCourseNoStr, reqVO.getCourseNoStr())
                .eqIfPresent(CourseItemDO::getCover, reqVO.getCover())
                .eqIfPresent(CourseItemDO::getDescription, reqVO.getDescription())
                .eqIfPresent(CourseItemDO::getPublisherId, reqVO.getPublisherId())
                .eqIfPresent(CourseItemDO::getUrl, reqVO.getUrl())
                .betweenIfPresent(CourseItemDO::getTime, reqVO.getTime())
                .betweenIfPresent(CourseItemDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(CourseItemDO::getId));
    }

    default List<CourseItemDO> selectListByMainCourseId(Long mainCourseId) {
        return selectList(CourseItemDO::getMainCourseId, mainCourseId);
    }

    default int deleteByMainCourseId(Long mainCourseId) {
        return delete(CourseItemDO::getMainCourseId, mainCourseId);
    }

}